home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #3 / Amiga Plus CD - 2002 - No. 03.iso / AmiSoft / Util / Rexx / Ebguide.lha / EBGuide.rexx < prev   
Encoding:
OS/2 REXX Batch file  |  2003-01-18  |  5.7 KB  |  120 lines

  1. /* EBGuide 1.0 ©2002 Michael Trebilcock
  2. $VER: EBGuide 1.0 (18.1.03) EBroadcast TV Guide script
  3. */
  4. Options Results;Parse Arg Args
  5.  
  6. IF Exists("LIBS:rexxreqtools.library")|Exists("LIBS/rexxreqtools.library")|Exists("rexxreqtools.library") THEN DO
  7. IF ~Show("L","rexxreqtools.library") THEN Call AddLib("rexxreqtools.library",0,-30,0);End
  8. ELSE Call CloseTCP("Unable to open rexxreqtools.library, please install LIBS:rexxreqtools.library")
  9.  
  10. UArgs=Upper(Args);URL="TCP:www.ebroadcast.com.au/80";File="0"
  11. Tag="EBGuide 0.9 ©2002 Michael Trebilcock";NL="0A"x
  12. IF UArgs="HELP"|Args="?" THEN Call CloseTCP("Usage: RX EBGuide [FORCE]")
  13.  
  14. IF GetClip(SCDate)~=Date() THEN Call SetClip(SCDate,Date())
  15. ELSE IF Right(UArgs,5)~="FORCE" THEN DO;File="1";URL="T:SCDate.log";End
  16.  
  17. INFO Screen;Screen="rt_pubscrname='"Result"'"
  18.  
  19. IF File="0" THEN IF ~Open(File,"T:SCDate.log","W") THEN Call CloseTCP("Unable to open T:SCDate.log to save dates info to")
  20. IF File="1" THEN SAY "Reading dates info from T:SCDate.log, please wait.."
  21. ELSE SAY "Connecting to www.ebroadcast.com.au, please wait.."
  22. IF ~Open(TCP,URL,"RW") THEN DO
  23.  IF File="0" THEN Call CloseTCP("Unable to connect, try again later..")
  24.  Call CloseTCP("Cannot open T:SCDate.log, use the FORCE argument")
  25. End
  26. IF File="0" THEN DO
  27.  SAY "Connected, grabbing dates information.."
  28.  Call WriteLn(TCP,"GET /tv/ HTTP/1.0")
  29.  Call WriteLn(TCP,"Host: www.ebroadcast.com.au")
  30.  Call WriteLn(TCP,"")
  31. End
  32. Output=ReadLn(TCP);IF File="0" THEN Call WriteLn(File,Output)
  33. IF Word(Output,2)~="200" THEN Call CloseTCP("Error "Word(Output,2)", unable to grab dates information..")
  34. i=0
  35. DO UNTIL i=2|EOF(TCP)
  36.  Output=ReadLn(TCP);IF File="0" THEN Call WriteLn(File,Output) 
  37.  IF Pos("<!--day-->",Output)>0 THEN i=2
  38. End
  39. IF EOF(TCP) THEN Call CloseTCP("Page layout has changed, please report this to trebs@ihug.com.au")
  40. i=1;Output=ReadLn(TCP);IF File="0" THEN Call WriteLn(File,Output)
  41. DayOpts="Please select one of the following:"NL
  42. DO UNTIL Left(Output,9)="</SELECT>"|EOF(TCP)
  43.  Where=SubStr(Output,Pos(d2c(34),Output)+1)
  44.  Day.i=SubStr(Where,1,Pos(d2c(34),Where)-1)
  45.  DayOpts=DayOpts""NL""i". "Day.i
  46.  i=i+1;Output=ReadLn(TCP);IF File="0" THEN Call WriteLn(File,Output)
  47. End
  48. Amount=i-1
  49. IF EOF(TCP) THEN Call CloseTCP("Page layout has changed, please report this to trebs@ihug.com.au")
  50. Call Close(TCP);Call Close(File);SAY "Grabbed date information.."
  51. NWorks.1="";NWorks.2="";NWorks.3=""
  52. NWorks=rtgetstring("","Please select one of the following:"NL NL"1. Free to Air"NL"2. Foxtel"NL"3. Optus Television",Tag,"_Ok|_Cancel",Screen)
  53. IF rtresult="0" THEN Exit;IF NWorks<1|NWorks>3 THEN Call CloseTCP("Invalid selection!")
  54. NWorks.NWorks="on"
  55. Loc=rtgetstring("","Please select one of the following:"NL NL"1. Adelaide"NL"2. SA Regional"NL"3. Brisbane"NL"4. QLD Regional"NL"5. Canberra"NL"6. Darwin"NL"7. NT Regional"NL"8. Hobart"NL"9. TAS Regional"NL"10. Melbourne"NL"11. VIC Regional"NL"12. Perth"NL"13. WA Regional"NL"14. Sydney"NL"15. NSW Regional",Tag,"_Ok|_Cancel",Screen)
  56. IF rtresult="0" THEN Exit;IF Loc<1|Loc>15 THEN Call CloseTCP("Invalid selection!")
  57. Loc.1="Adelaide";Loc.2="SAReg";Loc.3="Brisbane"
  58. Loc.4="QLDReg";Loc.5="Canberra";Loc.6="Darwin"
  59. Loc.7="NTReg";Loc.8="Hobart";Loc.9="TASReg"
  60. Loc.10="Melbourne";Loc.11="VICReg";Loc.12="Perth"
  61. Loc.13="WAReg";Loc.14="Sydney";Loc.15="NSWReg"
  62. Loc=Loc.Loc;Day=rtgetstring("",DayOpts,Tag,"_Ok|_Cancel",Screen)
  63. IF rtresult="0" THEN Exit;IF Day<1|Day>Amount THEN Call CloseTCP("Invalid selection!")
  64. Day=Day.Day;Time=rtgetstring("","Please select one of the following:"NL NL"1. Morning"NL"2. Afternoon"NL"3. Night"NL"4. LateNight",Tag,"_Ok|_Cancel",Screen)
  65. IF rtresult="0" THEN Exit;IF Time<1|Time>4 THEN Call CloseTCP("Invalid selection!")
  66. Time.1="Morning";Time.2="Afternoon"
  67. Time.3="Night";Time.4="LateNight"
  68. Time=Time.Time
  69. SAY "";SAY "Location = "Loc;SAY "Day = "Day
  70. SAY "Time = "Time;SAY ""
  71. SAY "Connecting to www.ebroadcast.com.au, please wait.."
  72. IF ~Open(TCP,"TCP:www.ebroadcast.com.au/80","RW") THEN Call CloseTCP("Unable to connect, try again later..")
  73. SAY "Connected, reading TV schedule.."
  74. Call WriteLn(TCP,"GET /cgi-bin/TV/select?fta="NWorks.1"&fox="NWorks.2"&opt="NWorks.3"&state="Loc"&date="Day"&option="Time" HTTP/1.0")
  75. Call WriteLn(TCP,"Host: www.ebroadcast.com.au")
  76. Call WriteLn(TCP,"")
  77. Output=Word(ReadLn(TCP),2);IF Output~="200"&Output~="302" THEN Call CloseTCP("Error "Output", unable to read TV schedule..")
  78. IF Output="200" THEN Call ReadList();ELSE DO
  79. DO UNTIL Word(Output,1)="Location:"|EOF(TCP)
  80. Output=ReadLn(TCP);End
  81. IF EOF(TCP) THEN Call CloseTCP("Page layout has changed, please report this to trebs@ihug.com.au")
  82. Call Close(TCP);SAY "Received re-direction URL, connecting..";SAY Output
  83. Parse Var Output a".au"URL;IF ~Open(TCP,"TCP:www.ebroadcast.com.au/80","RW") THEN Call CloseTCP("Unable to connect, try again later..")
  84. Call WriteLn(TCP,"GET "URL" HTTP/1.0")
  85. Call WriteLn(TCP,"Host: www.ebroadcast.com.au")
  86. Call WriteLn(TCP,"")
  87. IF Word(ReadLn(TCP),2)~="200" THEN Call CloseTCP("Unable to read TV schedule..")
  88. Call ReadList()
  89. Exit
  90.  
  91. CloseTCP:
  92. IF Arg(1)~="" THEN SAY Arg(1)
  93. Call Close(TCP);Call Close(File)
  94. Exit
  95.  
  96. ReadList:
  97. DO UNTIL EOF(TCP)
  98.  Output=ReadLn(TCP)
  99.  IF Pos("valign="d2c(34)"TOP"d2c(34)" bgcolor="d2c(34)"#CCCCCC"d2c(34),Output)>0 THEN DO
  100.   SAY ""
  101.   SAY ""
  102.   Where=SubStr(Output,Pos("#000000",Output)+8)
  103.   SAY ""SubStr(Where,1,Pos("</font>",Where)-1)""
  104.   SAY ""
  105.  End
  106.  IF Pos("am:",Output)>0|Pos("pm:",Output)>0 THEN DO
  107.   IF Left(Output,4)="<BR>" THEN Where=SubStr(Output,5)
  108.   ELSE IF Pos(".",Left(Output,4))>0 THEN Where=Output
  109.   ELSE Where=SubStr(Output,Pos("size=1",Output)+7)
  110.   When=SubStr(Where,1,Pos(":",Where)-1)
  111.   Where=SubStr(Output,Pos("<a href=",Output))
  112.   Where=SubStr(Where,Pos(">",Where)+1)
  113.   SAY ""When": "SubStr(Where,1,Pos("</a>",Where)-1)
  114.  End
  115. End
  116. SAY ""
  117. SAY ""
  118. Call CloseTCP("TV listings complete..")
  119. Exit
  120.